Challenge #74: Build a Factorial Calculator ~nの階乗の標準マクロ~ – Alteryx Weekly Challenge
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
Alteryx Communityで公開されているWeekly Challengeに挑戦するシリーズ。今回は階乗の計算をする標準マクロの作成に挑戦します。
動作環境
当エントリの執筆には、以下の環境を利用しています。
- Windows 10 Pro
- Alteryx Designer 2018.4.5.55178 英語版
Challenge #74: Build a Factorial Calculator
お題
今回挑戦するお題はこちら。
Input側には以下のデータが用意されています。
Output側のデータはこちら。Input側のデータに対して階乗の結果を出力しています。
ワークフローの作成
まずは通常のワークフローで回答を作成していきます。
Generate Rowsツール(Preparation -> Generate Rows)を接続します。Create New Field を使用して、新しく「RowCount」列をDouble型で作成します。Loop Expression に RowCount + 1
、 Condition Expression に RowCount <= Number
を設定して、「Number」列の数だけ行を作成します。
Multi-Row Formulaツール(Preparation -> Multi-Row Formula)を使用して計算します。Update Existing Field で「RowCount」列を選択し、「Number」列のセルが1つ上と同じ場合に「RowCount」列のセルの1つ上をかけ算した結果を出力します。
式は以下のとおり設定しています。
if [Row-1:Number] = [Number] then [Row-1:RowCount] * [RowCount] else [RowCount] endif
Summarizeツール(Transform -> Summarize)を使用して、「Number」列でグループ化し、「RowCount」列の最大値を「Factorial」列に出力します。
結果を確認します。これでワークフローが完成しました。
マクロの作成と使用
ワークフローをマクロ化して使用してみます。
Input側のデータがあるText Inputツール(In/Out -> Text Input)の右クリックメニューを開き、 Convert To Macro Input を選択し、Macro Inputツール(Interface -> Macro Input)に変換します。
また、Browseツール(In/Out -> Browse)を削除し、Macro Outputツール(Interface -> Macro Output)をSummarizeツールに接続します。
これでマクロ化することができました。
View -> Interface Designer の Properties を開き、アイコンを設定します。
マクロを保存し、今度はマクロを使用してみます。新しく開いたワークフローのInput側のデータに、作成したマクロを接続します。
結果を確認して完成です。
最後に
今回はWeekly ChallengeのChallenge #74: Build a Factorial Calculatorに挑戦しました。
サンプルワークフローのご案内
クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。